/*
 * nodo.h
 *
 *  Created on: May 23, 2009
 *      Author: gianpaolo
 */

#ifndef NODO_H_
#define NODO_H_
#include <list>

using namespace std;

/*
 * Estructura que contiene los datos necesarios para cada estado.
 * 	El apuntador al nodo padre nos sirve para reconstruir la solucion
 * luego que se encontro
 * 	El char movimiento nos dice que movimiento se uso para llegar al nodo
 * 	El long representa el tablero 012345678 es el tablero ordenado
 */
struct Nodo {
	void* padre;
	char movimiento;
	long tablero;
};

list<Nodo> lista;

/*
 * Impresion de la estructura Nodo
 */
void printNodo(Nodo *nodo);

/*
 * Expansion de nodos. Expande todos los hijos
 */
list<Nodo> expandirNodo(Nodo nodo);


#endif /* NODO_H_ */
